Benjamin Otte [Fri, 16 Feb 2018 05:30:48 +0000 (06:30 +0100)]
snapshot: "Inherit" from GdkSnapshot
This is a neat trick to get around the circularity between GDK, GSK and
GTK that we inherit with the GdkPaintable interface.
GdkPaintable uses GtkSnapshot
GtkSnapshot creates GskRenderNodes
GskRenderNodes use GdkTextures
GdkTexture will soon implement GdkPaintable
This causes a loop that spans GDK, GSK and GTK and this is the easiest
way to resolve it without breaking bindings (at least that's the idea).
Benjamin Otte [Fri, 16 Feb 2018 04:32:32 +0000 (05:32 +0100)]
gdk: Add GdkPaintable
Benjamin Otte [Tue, 13 Feb 2018 07:22:34 +0000 (08:22 +0100)]
css: Implement support for dynamic values
This adds a new GtkStyleAnimation called GtkCssDynamic (for lack of a
better name) that is spawned whenever at least one dynamic value is part
of the GtkCssStyle.
Benjamin Otte [Tue, 13 Feb 2018 06:04:21 +0000 (07:04 +0100)]
cssimage: Implement dynamic values
No image actually implements it yet, but this is the plumbing.
Benjamin Otte [Tue, 13 Feb 2018 04:55:33 +0000 (05:55 +0100)]
css: Introduce the idea of dynamic values
Dynamic values are values that change their contents with the current
(monotonic) time.
This just introduces the GtkCssValue API for it.
Benjamin Otte [Tue, 13 Mar 2018 15:53:31 +0000 (16:53 +0100)]
vulkan: Our data is premultiplied, don't pretend it isn't
If the backend can't do premultiplied alpha, better make the backend treat
Benjamin Otte [Thu, 15 Mar 2018 02:50:44 +0000 (03:50 +0100)]
css: Remove ability to query css images as cairo patterns
Nobody's doing that. And CSS Images are no longer using Cairo anyway.
If we wanted to support querying them (hint: we don't) we should be
using GdkPaintable.
Benjamin Otte [Tue, 13 Mar 2018 19:04:21 +0000 (20:04 +0100)]
aboutdialog: The default icons are textures these days
Benjamin Otte [Sun, 4 Mar 2018 18:47:56 +0000 (19:47 +0100)]
demos: Unbreak icon for fishbowl demo
351559fcfae1996143e4c1702aa9fc174c6c345f was to eager in simplifying
things.
Benjamin Otte [Fri, 16 Mar 2018 05:04:02 +0000 (06:04 +0100)]
css: Fix compiler warning
...
Matthias Clasen [Fri, 16 Mar 2018 00:25:06 +0000 (20:25 -0400)]
Improve the scale handling
Always use the smallest scale that is larger than requested,
or, failing that, the largest available scale.
Matthias Clasen [Thu, 15 Mar 2018 23:58:40 +0000 (23:58 +0000)]
Merge branch 'css-image-scaled' into 'master'
Css image scaled
See merge request GNOME/gtk!62
Emmanuele Bassi [Thu, 15 Mar 2018 12:01:45 +0000 (12:01 +0000)]
ci: Restore ccache, but do not cache it across jobs
The GitLab cache is kept across jobs, whether they succeeded or not:
this means that if a compiler check fails during the Meson
configuration, the small compiler program gets cached and restored the
next time the job is run, thus failing again.
Matthias Clasen [Thu, 15 Mar 2018 17:44:49 +0000 (17:44 +0000)]
Merge branch 'wip/filechooser-non-default-display-gtk4' into 'master'
Fix filechooser dialog using non default display (gtk4)
Closes #83
See merge request GNOME/gtk!60
Matthias Clasen [Thu, 15 Mar 2018 17:38:41 +0000 (13:38 -0400)]
Update the expected results in the testsuite
the -gtk-scaled() change in the previous commit makes it so
that we now print out the scale factors. Update the expected
output of affected tests to take that into account.
Timm Bäder [Thu, 15 Mar 2018 17:17:57 +0000 (18:17 +0100)]
gl renderer: Set border program outline state
Timm Bäder [Thu, 15 Mar 2018 17:07:35 +0000 (18:07 +0100)]
gl renderer: Remove shadow program
Drawing shadows is the same task as drawing text in our case and these
two shaders have been the same thing for quite a while.
Timm Bäder [Thu, 15 Mar 2018 16:27:19 +0000 (17:27 +0100)]
gl renderer: Fix clipped borders
Stop abusing the clip rect for borders.
Timm Bäder [Thu, 15 Mar 2018 14:56:36 +0000 (15:56 +0100)]
shaderbuilder: Remove unused API
Timm Bäder [Thu, 15 Mar 2018 14:06:46 +0000 (15:06 +0100)]
gl: Move shaderbuilder into gl/ subdirectory
It only handles OpenGL shaders.
Timm Bäder [Thu, 15 Mar 2018 12:52:07 +0000 (13:52 +0100)]
gl renderer: Draw offscreen nodes in device pixels
We need to draw them upscaled, of course. This fixes button hover (or,
more generally, crossfade nodes) in hidpi setups.
Timm Bäder [Thu, 15 Mar 2018 11:58:51 +0000 (12:58 +0100)]
testsuite: Add more gl renderer tests
Timm Bäder [Thu, 15 Mar 2018 11:41:11 +0000 (12:41 +0100)]
gl tests: Update clipped cross fade output
Timm Bäder [Thu, 15 Mar 2018 10:15:35 +0000 (11:15 +0100)]
testsuite: Add a GL gradient test
Matthias Clasen [Thu, 15 Mar 2018 05:15:52 +0000 (01:15 -0400)]
Make GtkCssImageScaled handle scales properly
We slightly expand the syntax of -gtk-scaled to allow
specifying an explicit scale after each image, and then
we create a single-image GtkCssImageScaled with the
preferred scale in compute().
Timm Bäder [Thu, 15 Mar 2018 10:01:53 +0000 (11:01 +0100)]
gl renderer: Fix rounded clips in hidpi
Timm Bäder [Thu, 15 Mar 2018 08:44:49 +0000 (09:44 +0100)]
spinbutton: Remove an unnecessary queue_draw call
This is done automatically in case the spinbutton value actually
changes.
Timm Bäder [Wed, 14 Mar 2018 19:41:09 +0000 (20:41 +0100)]
gdk: Remove unused variable
Timm Bäder [Wed, 14 Mar 2018 18:21:09 +0000 (19:21 +0100)]
GskGLDriver: Use g_assert_cmphex for GL constants
Matthias Clasen [Thu, 15 Mar 2018 03:23:03 +0000 (23:23 -0400)]
Trivial formatting fixes
Fix some whitespace problems.
Daniel Boles [Wed, 14 Mar 2018 22:39:19 +0000 (22:39 +0000)]
testspinbutton: Add button to toggle wrap on Spins
I found myself wanting to test this for something else, so let's test
it. It revealed a bug immediately!
https://gitlab.gnome.org/GNOME/gtk/issues/88
Daniel Boles [Wed, 14 Mar 2018 22:37:34 +0000 (22:37 +0000)]
testspinbutton: Orient box orthogonally to Spins
This makes better use of space.
Timm Bäder [Wed, 14 Mar 2018 16:24:28 +0000 (17:24 +0100)]
testsuite: Simplify GL test definition
Timm Bäder [Wed, 14 Mar 2018 11:39:15 +0000 (12:39 +0100)]
testsuite: Add a GL tests for clipped rounded clipped nodes
Timm Bäder [Wed, 14 Mar 2018 11:36:32 +0000 (12:36 +0100)]
gl renderer: Draw rounded clip child to a texture
And then clip the texture using the current (maybe also rounded) clip.
This way, the result is correct. We don't necessarily have to do the
offscreen drawing in any case, but got the safe route for now.
Timm Bäder [Wed, 14 Mar 2018 11:23:38 +0000 (12:23 +0100)]
gl renderer: Properly draw gl textures from a different context
Temporarily switch to the texture's gl context, download the texture and
create a new one in our context for it.
Timm Bäder [Wed, 14 Mar 2018 10:00:02 +0000 (11:00 +0100)]
fixed: Remove snapshot implementation
It does the same thing as the default implementation.
Timm Bäder [Wed, 14 Mar 2018 09:51:55 +0000 (10:51 +0100)]
snapshot: Ignore 0 sized clip nodes
This may happen due to the intersection before.
Carlos Soriano [Wed, 14 Mar 2018 15:03:38 +0000 (16:03 +0100)]
gtkmenu: Remove unused constant
It was used in gtk3 but not in master anymore.
Jonas Ådahl [Wed, 14 Mar 2018 03:54:02 +0000 (11:54 +0800)]
entrycompletion: Realize popup after setting screen
Realization is done as a side effect of calling
_gtk_entry_completion_resize_popup(), but if this is done before the
GdkScreen of the GtkWindow is set up correctly, it may result in the
widget being unrealized when the screen is updated. This may happen
when the file dialog parent window is not using the default GdkDisplay.
To avoid this issue, realize the popup after the screen has been
properly set up.
Fixes #83 in gtk4
Timm Bäder [Tue, 13 Mar 2018 21:41:18 +0000 (22:41 +0100)]
snapshot: Add missing (nullable) annotation
Timm Bäder [Mon, 12 Mar 2018 09:00:52 +0000 (10:00 +0100)]
widget: Simplify setting a default direction
No reason for the second paramter to be a pointer.
Timm Bäder [Sat, 10 Mar 2018 14:44:53 +0000 (15:44 +0100)]
label: Remove dead NULL check
We only create the gesture when priv->select_info is !NULL.
Christoph Reiter [Tue, 13 Mar 2018 20:30:53 +0000 (20:30 +0000)]
Merge branch 'master' into 'master'
Add proper annotation for gdk_frame_clock_get_refresh_info
See merge request GNOME/gtk!55
Christoph Reiter [Tue, 13 Mar 2018 20:08:56 +0000 (21:08 +0100)]
run-docker.sh: Disable SELinux for the container and update the image tag
On Fedora and similar SELinux by default prevents containers accessing
mounted host directories. This script is just used for testing,
so disable it.
Emmanuele Bassi [Tue, 13 Mar 2018 18:13:46 +0000 (18:13 +0000)]
Update CONTRIBUTING.md
Update the instructions to match the GitLab workflow.
Emmanuele Bassi [Tue, 13 Mar 2018 17:56:44 +0000 (17:56 +0000)]
ci: Add explicit dependency on "which"
The xvfb-run script depends on it, but it seems Fedora packages ended up
forgetting about it.
Emmanuele Bassi [Tue, 13 Mar 2018 17:03:27 +0000 (17:03 +0000)]
ci: Remove ccache
There are issues with the caching; CI will randomly fail to create new
files used when testing features.
Emmanuele Bassi [Tue, 13 Mar 2018 16:28:42 +0000 (16:28 +0000)]
ci: Add GLib build dependencies
Since we may end up building GLib as a subproject, we're going to need
all the appropriate GLib build dependencies as well as the GTK ones.
Emmanuele Bassi [Tue, 13 Mar 2018 16:05:03 +0000 (16:05 +0000)]
ci: Use a different Docker image
I've rebuilt the new Docker image we use for CI to include GStreamer in
the dependencies.
We really need to have the Docker registry hosted on gnome.org, to avoid
pointing people at Dockerhub.
Emmanuele Bassi [Mon, 12 Mar 2018 10:06:59 +0000 (10:06 +0000)]
Annotate gdk_gl_texture_new() appropriately
This is a constructor, and it needs a transfer annotation.
Sadly, the resulting introspection representation is going to be a less
than satisfactory `Gdk.gl_texture_new()`, because there is no such thing
as a GdkGLTexture in the public API.
Emmanuele Bassi [Mon, 12 Mar 2018 10:03:54 +0000 (10:03 +0000)]
Initialise variables
The dx and dy variables may be left uninitialized by the coordinate
translation — or so the C compiler thinks. Let's avoid a warning when
building.
Emmanuele Bassi [Mon, 12 Mar 2018 10:02:24 +0000 (10:02 +0000)]
Use the same arguments for print backends
All the print backend shared modules should use the same C preprocessor
symbols.
Emmanuele Bassi [Mon, 12 Mar 2018 09:54:56 +0000 (09:54 +0000)]
ci: Add gstreamer to the Docker image
We're going to need it for the media interface.
Emmanuele Bassi [Thu, 1 Mar 2018 10:23:14 +0000 (17:23 +0700)]
ci: Use the right path for the logs
The meson-logs directory is under the `_build` directory.
Matthias Clasen [Tue, 13 Mar 2018 02:09:26 +0000 (02:09 +0000)]
Merge branch 'query-wayland-registry' into 'master'
gtkimmodule: make match_backend() query
See merge request GNOME/gtk!56
Daniel Boles [Tue, 13 Mar 2018 00:19:51 +0000 (00:19 +0000)]
FileChooserWidget: Fix leaks in .get_subtitle()
Now that subtitle's default value "Searching" for OPERATION_MODE_SEARCH
is duplicated as it should be, we cannot reassign other strings to it
anymore, as that resulted in the original dupe of "Searching" leaking.
Fix this by only assigning the dup'd "Searching" after trying to get
more specific values, not before. We therefore need to set it to NULL
during its declaration, and that means we needn't in the final else.
Daniel Boles [Mon, 12 Mar 2018 22:44:37 +0000 (22:44 +0000)]
FileChooserWidget: Avoid crash freeing static str
Having a FileChooserDialog in location-entry mode then pressing
<primary>f to move to search mode would crash with an invalid free().
In that case, FileChooserWidget.get_subtitle() returned a static string
straight from gettext. This crashed when the GBinding from :subtitle to
FileChooserDialog’s HeaderBar:subtitle shortly tried to free the string.
Fix by duplicating the string before returning it, like all other paths.
https://bugzilla.gnome.org/show_bug.cgi?id=791004
Peter Bloomfield [Mon, 12 Mar 2018 21:46:57 +0000 (17:46 -0400)]
gtkimmodule: make match_backend() query
…the wayland registry.
Wnen _gtk_im_module_get_default_context_id calls
match_backend (context_id) and the default GdkDisplay
is wayland, match_backend() should return TRUE only if
gdk_wayland_display_query_registry (display, "gtk_text_input_manager")
returns TRUE.
Stas Solovey [Mon, 12 Mar 2018 21:08:05 +0000 (21:08 +0000)]
Update Russian translation
(cherry picked from commit
0e016686838982253b1dc161f4d9df48ce091abd)
Aurimas Černius [Mon, 12 Mar 2018 21:00:48 +0000 (23:00 +0200)]
Updated Lithuanian translation
Daniel Boles [Mon, 12 Mar 2018 18:57:06 +0000 (18:57 +0000)]
testinfobar: Test more properties, response signal
Also test :message-type, :show-close-button, and ::response.
Marek Černocký [Mon, 12 Mar 2018 19:08:48 +0000 (20:08 +0100)]
Updated Czech translation
Mart Raudsepp [Mon, 12 Mar 2018 16:27:50 +0000 (16:27 +0000)]
Update Estonian translation
(cherry picked from commit
e4e2b7687d455566b2102404487fcaa6b1b0077a)
Benjamin Otte [Mon, 12 Mar 2018 16:17:30 +0000 (17:17 +0100)]
texture: Change download vfunc
A problem with textures is that they can become too big for GPU memory,
which would require tiling. But for tiling we only need to download
the pixels needed by the tile.
Similarly, there might be interest to not upload full textures if a
renderer knows it only needs a small part.
Both of these methods require the ability to specify an area of the
texture to be downloaded. So change the download vfunc to include
this parameter now before we add even more textures later.
A private gdk_texture_download_area() function has also been added, but
nobody is using it yet.
Benjamin Otte [Mon, 12 Mar 2018 04:12:54 +0000 (05:12 +0100)]
texture: Export gdk_memory_texture_new() and GdkMemoryFormat
Also add tests for all these newfangled formats.
Daniel Boles [Mon, 12 Mar 2018 16:17:11 +0000 (16:17 +0000)]
Merge branch 'wip/dboles/frame-yalign-byealign' into 'master'
Frame: Erase the now-useless property label-yalign
See merge request GNOME/gtk!40
Daniel Boles [Mon, 12 Mar 2018 16:08:29 +0000 (16:08 +0000)]
ListBox: Avoid ::row-activated/Row::activate ambig
…uity, by adding a doc comment to Row::activate explaining what it does
and why it is probably not what the user reading that is looking for.
https://bugzilla.gnome.org/show_bug.cgi?id=794008
Piotr Drąg [Mon, 12 Mar 2018 15:48:31 +0000 (16:48 +0100)]
Update Polish translation
Daniel Boles [Mon, 12 Mar 2018 15:29:21 +0000 (15:29 +0000)]
testinfobar: Add simple test of :visible/:revealed
This exists merely to prove that, having added :revealed, show() and
hide() now work reliably, as does set_revealed() for the animated case.
https://bugzilla.gnome.org/show_bug.cgi?id=710888
Sander Sweers [Mon, 12 Mar 2018 13:29:09 +0000 (14:29 +0100)]
Add proper annotation for gdk_frame_clock_get_refresh_info
See https://gitlab.gnome.org/GNOME/gtk/issues/77
Daniel Boles [Thu, 1 Mar 2018 19:53:53 +0000 (19:53 +0000)]
Frame: Erase the now-useless property label-yalign
The border is now drawn on the frame node, not using an internal border
node, so we are no longer able to align the label to vertically overlap
the border. The property no longer performs its original purpose, & nor
is it a useful candidate for giving a new role, so no point keeping it.
https://bugzilla.gnome.org/show_bug.cgi?id=778886
Balázs Meskó [Mon, 12 Mar 2018 06:21:39 +0000 (06:21 +0000)]
Update Hungarian translation
Piotr Drąg [Sun, 11 Mar 2018 18:28:03 +0000 (19:28 +0100)]
Update POTFILES.in
Matthias Clasen [Sun, 11 Mar 2018 16:47:43 +0000 (16:47 +0000)]
Merge branch 'module-reorg' into 'master'
Consolidate print backends into one directory
See merge request GNOME/gtk!53
Matthias Clasen [Sun, 11 Mar 2018 16:18:16 +0000 (12:18 -0400)]
Consolidate print backends into one directory
This will let us use GTK_PATH to load them uninstalled, which
is useful for in-tree tests.
Matthias Clasen [Sun, 11 Mar 2018 12:14:14 +0000 (08:14 -0400)]
Exit cleanly if no display is found
We should not try to create an inspector window and generate
tons of ugly warnings in this case.
Marek Černocký [Sun, 11 Mar 2018 08:43:01 +0000 (09:43 +0100)]
Updated Czech translation
Marek Černocký [Sun, 11 Mar 2018 07:14:09 +0000 (08:14 +0100)]
Updated Czech translation
Marek Černocký [Sun, 11 Mar 2018 07:12:31 +0000 (08:12 +0100)]
Fixed typo in script name Kjohki -> Khojki
Matthias Clasen [Sun, 11 Mar 2018 05:39:00 +0000 (05:39 +0000)]
Merge branch 'wip/matthiasc/snapshot' into 'master'
Implement builder pattern for GtkSnapshot
See merge request GNOME/gtk!52
Matthias Clasen [Sun, 11 Mar 2018 05:29:46 +0000 (00:29 -0500)]
Use GtkSnapshot getters
We can avoid direct struct access and gtksnapshotprivate.h
everywhere.
Matthias Clasen [Sun, 11 Mar 2018 05:17:53 +0000 (00:17 -0500)]
GtkSnapshot: Add getters
These getters can be useful when creating new snapshots
in a snapshot() vfunc.
Matthias Clasen [Sun, 11 Mar 2018 02:29:46 +0000 (21:29 -0500)]
Document new snapshot api
Matthias Clasen [Sun, 11 Mar 2018 02:20:25 +0000 (21:20 -0500)]
GtkSnapshot: Drop init/finish
We are ont using stack-allocated snapshots anymore.
Matthias Clasen [Sun, 11 Mar 2018 02:14:09 +0000 (21:14 -0500)]
Stop using stack-allocated snapshots
Use the new/free api instead of init/finish
for GtkSnapshot.
Matthias Clasen [Sun, 11 Mar 2018 01:52:06 +0000 (20:52 -0500)]
GtkSnapshot: Implement the builder pattern
Make GtkSnapshot a refcounted boxed type, and add
public API that follows the builder pattern described
here: https://blogs.gnome.org/otte/2018/02/03/builders/
Timm Bäder [Fri, 9 Mar 2018 10:57:23 +0000 (11:57 +0100)]
GdkCursor: Add some missing (nullable) annotations
Timm Bäder [Wed, 7 Mar 2018 19:57:21 +0000 (20:57 +0100)]
spinbutton: Remove priv pointer
Matthias Clasen [Fri, 9 Mar 2018 07:13:13 +0000 (02:13 -0500)]
Avoid warnings
When generating introspection data, we instantiate types without
calling gtk_init, so make sure that extension points are registered
before the type is trying to implement them.
Pavel Roskin [Thu, 8 Mar 2018 14:58:42 +0000 (15:58 +0100)]
x11: Avoid a division by zero
This is similar to
f44baf51d9e8616a but for RandR 1.3 servers like
x11rdp and Windows Exceed which don't return a refresh rate. Avoid a
crash when that happens.
https://bugzilla.gnome.org/show_bug.cgi?id=775546
Timm Bäder [Wed, 7 Mar 2018 19:37:00 +0000 (20:37 +0100)]
separator: Remove priv pointer
Timm Bäder [Wed, 7 Mar 2018 19:26:51 +0000 (20:26 +0100)]
menubutton: Remove priv pointer
Timm Bäder [Wed, 7 Mar 2018 14:14:37 +0000 (15:14 +0100)]
widget: Add a translate_coordinates version for doubles
So we can use that one when translating event coordinates. Also adapt
the widgetfocus demo to ensure this works.
We should probably at some point delete either the int or the double
version.
Timm Bäder [Wed, 7 Mar 2018 13:02:19 +0000 (14:02 +0100)]
linkbutton: Remove priv pointer
Timm Bäder [Tue, 6 Mar 2018 20:25:01 +0000 (21:25 +0100)]
expander: Remove label-fill property
It's just setting some internal boolean and nothing else. It's like this
in gtk3 as well so it can't be too important either.
Timm Bäder [Wed, 7 Mar 2018 19:09:30 +0000 (19:09 +0000)]
Merge branch 'expander-add-like-bin' into 'master'
expander: Check for an existing child when adding
See merge request GNOME/gtk!48
Benjamin Otte [Wed, 7 Mar 2018 15:04:04 +0000 (16:04 +0100)]
overlay: Add GtkOverlay::measure child property
It determines whether a child is included in the overlay's size
measurement.
The first user is (gonna be) GtkVideo.
Benjamin Otte [Wed, 7 Mar 2018 01:02:28 +0000 (02:02 +0100)]
eventcontroller: Remove unused evmask member variable
Benjamin Otte [Wed, 7 Mar 2018 00:56:32 +0000 (01:56 +0100)]
eventcontroller: Get rid of constructed vfunc
Instead, add the controller to the widget in set_property.